package net.servir.censo.dao;

import java.sql.Array;
import java.util.LinkedList;
import java.util.List;

import oracle.jdbc.OracleTypes;

import net.servir.censo.model.*;

public interface CensoDAO {

	public LinkedList<Sistema> ObtenerSistema();
	public LinkedList<Ambito> ObtenerAmbito(Number id_sistema);
	public LinkedList<Ejecutora> ObtenerEjecutora(Number id_ejecutora);
	public LinkedList<ResponsableIdentificacion> ObtenerResponsableIdentificacion(String dni);
	public ResponsableIdentificacion GetResponsableIdentificacion(String dni, Number idAmbito, Number idSistema);
	public List ObtenerRptEjecutorCenso(Number id_sistema, Number id_ejecutora);
	
	public Integer ValidarUsuario(String dni, String clave);
	public Integer ValidarUsuarioAmbito(String dni, String clave);
	public List ObtenerRptEjecutoraCenso(Number id_ejecutora, Number id_ambito,Number para_reporte,String dni,String nombre, String puesto_tipo);
	
	public void GenerarRptEjecutorCenso(Number id_ambito, Number id_ejecutora);
	public List ObtenerRptResumenEjecutoraCenso(Number id_ambito, Number id_ejecutora);
	public List RptFuncionLeyenda (Number id_ambito);
	public void DeleteServicioCivil(Integer idAmbito, Integer idServicioCivil);
	public Integer ObtenerNumeroFunciones(Integer idAmbito);
	public Integer ObtenerNumeroPuestos_tipo(Integer idAmbito);
	
	public String ObtenerFechaSistema();
	public String ObtenerFechaHoraSistema();

	public Ambito GetAmbito(Number idAmbito);
	public Sistema GetSistema(Number idSistema);
	public Sistema getSistema(Number idSistema, String dni, Integer idAmbito);
	public Ejecutora GetEjecutora(Number idEjecutora);
	
	public ResponsableEjecutoraAmbito GetResponsableEjecutoraAmbito(Number idResponsable,Number idEjecutora, Number idAmbito);
	public void ActualizarTelefonoEjecutora(Number idEjecutora, String telefonoEjecutora);
	public List<Etapa> ObtenerEtapasAmbito(Number idAmbito);	

	public void FinalizarInscripcionParticipantes(Number idResponsable,Number idEjecutora, Number idAmbito);
	public List<ResponsableEjecutoraAmbito> ObtenerAmbitosResponsable(Number idResponsable);
	public Integer numObservacion(Number idEjecutora, Number idAmbito);
	public List<PuestoTipo> getPuestoTipos(Number idSistema);
	public Integer getIdPuestoOperador(Number idSistema);
	public String esJefePuestoTipo(Number idPuestoTipo);
	public Sistema getSistema(Integer idSistema);
	public List RptPuestoLeyenda(Number id_ambito);
}

